package com.qiang.test01;

import javax.xml.namespace.QName;
import java.io.File;
import java.util.HashMap;
import java.util.Set;

public class Demo05 {
    public static void main(String[] args) {
        //创建对象
        //File file = new File("D:\\xx");
        File file = new File("day08");

        HashMap<String, Integer> hm = new HashMap<>();//新建集合

        //创建方法，递归
        getCount(hm, file);
        System.out.println(hm);


    }

    private static void getCount(HashMap<String, Integer> hm, File file) {

        //获取文件夹列表
        File[] f2 = file.listFiles();
        //Set<String> keyset = hm.keySet();

        //遍历数组，获取到每个文件
        for (File f3 : f2) {
            //判断是否是文件
            if (f3.isFile()) {
                //是文件的话,获取文件名字
                String name = f3.getName();
                //分割名字，得到分割后的数组
                String[] name2 = name.split("\\.");
                //判断数组长度是否是2（目前只考虑常规文件）
                if (name2.length == 2) {
                    //是的话，获取后缀（第二个元素）
                    String name3 = name2[1];//获取后缀

                    if (hm.containsKey(name3)) {
                        Integer count = hm.get(name3);
                        count++;
                        hm.put(name3, count);
                    } else {
                        hm.put(name3, 1);
                    }
                    //遍历ksyset里面的元素
                    /*for (String key : keyset) {
                        //判断元素是否存在，存在的话，加1
                        if (key.equals(name3)) {
                            Integer count = hm.get(name3);//获取数量
                            count++;
                            hm.put(name3, count);
                        } else {
                            //不存在的话，直接添加进去
                            hm.put(name3, 1);
                        }
                    }*/
                }
            } else {

                //不是文件的话，调用本方法
                getCount(hm, f3);
            }

        }
    }
}
